/*
 * Created by JFormDesigner on Tue Dec 14 18:29:10 CST 2021
 */

package com.cn.项目.飞机预约管理系统.UserFrame;


import com.cn.项目.utils.ImageUtil;
import com.cn.项目.utils.JdbcUtils;
import com.cn.项目.飞机预约管理系统.Maininterface.Fail;
import com.cn.项目.飞机预约管理系统.Maininterface.Success;

import java.awt.*;
import java.awt.event.*;
import java.io.File;
import java.io.FileInputStream;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import javax.swing.*;
import javax.swing.filechooser.FileNameExtensionFilter;


public class AddPassenger extends JFrame {
    String path = null;
    public AddPassenger() {
        initComponents();
    }


    //添加图片监听
    private void button1ActionPerformed(ActionEvent e) {
        // TODO add your code here
       path = showFileOpenDialog(this);

    }


    //增加
    private void button2ActionPerformed(ActionEvent e) {
        // TODO add your code here
        Connection conn = null;
        PreparedStatement st = null;
        ResultSet rs = null;
        String pname = textField1.getText();
        String pcard = textField2.getText();
        FileInputStream in = null;
        String dname = textField3.getText();

        try {
           in = ImageUtil.readImage(path);
           conn  = JdbcUtils.getConnection();
           String sql = "insert into passenger(pname,pcard,photo,dname)values (?,?,?,?)";
           st  = conn.prepareStatement(sql);
           st.setString(1, pname);
           st.setString(2, pcard);
           st.setBinaryStream(3, in, in.available());
           st.setString(4,dname);
           int i = st.executeUpdate();
           if(i>0){
                new Success();
           }else {
                new Fail();
           }
        } catch (Exception e1) {
            e1.printStackTrace();
        }finally {
            JdbcUtils.release(conn,st ,rs);
        }

    }

    private void initComponents() {
        // JFormDesigner - Component initialization - DO NOT MODIFY  //GEN-BEGIN:initComponents
        label1 = new JLabel();
        label2 = new JLabel();
        label3 = new JLabel();
        textField1 = new JTextField();
        textField2 = new JTextField();
        label4 = new JLabel();
        textField3 = new JTextField();
        button1 = new JButton();
        button2 = new JButton();

        //======== this ========
        setVisible(true);
        Container contentPane = getContentPane();
        contentPane.setLayout(null);

        //---- label1 ----
        label1.setText("增加乘客");
        label1.setForeground(new Color(255, 51, 0));
        label1.setFont(label1.getFont().deriveFont(label1.getFont().getSize() + 14f));
        contentPane.add(label1);
        label1.setBounds(125, 10, 230, 45);

        //---- label2 ----
        label2.setText("乘客姓名");
        label2.setFont(label2.getFont().deriveFont(label2.getFont().getSize() + 6f));
        contentPane.add(label2);
        label2.setBounds(20, 75, 110, 35);

        //---- label3 ----
        label3.setText("身份号：");
        label3.setFont(label3.getFont().deriveFont(label3.getFont().getSize() + 6f));
        contentPane.add(label3);
        label3.setBounds(20, 150, 90, 35);
        contentPane.add(textField1);
        textField1.setBounds(140, 75, 205, 35);
        contentPane.add(textField2);
        textField2.setBounds(140, 150, 205, 35);

        //---- label4 ----
        label4.setText("代买人");
        label4.setFont(label4.getFont().deriveFont(label4.getFont().getSize() + 6f));
        contentPane.add(label4);
        label4.setBounds(20, 220, 90, 35);
        contentPane.add(textField3);
        textField3.setBounds(140, 215, 205, 35);

        //---- button1 ----
        button1.setText("添加图片");
        button1.setForeground(new Color(0, 204, 0));
        button1.setFont(button1.getFont().deriveFont(button1.getFont().getSize() + 6f));
        button1.addActionListener(e -> button1ActionPerformed(e));
        contentPane.add(button1);
        button1.setBounds(15, 270, 115, 40);

        //---- button2 ----
        button2.setText("增加");
        button2.setForeground(new Color(0, 204, 204));
        button2.setFont(button2.getFont().deriveFont(button2.getFont().getSize() + 10f));
        button2.addActionListener(e -> button2ActionPerformed(e));
        contentPane.add(button2);
        button2.setBounds(100, 330, 180, button2.getPreferredSize().height);

        contentPane.setPreferredSize(new Dimension(400, 430));
        pack();
        setLocationRelativeTo(getOwner());
        // JFormDesigner - End of component initialization  //GEN-END:initComponents
    }

    // JFormDesigner - Variables declaration - DO NOT MODIFY  //GEN-BEGIN:variables
    private JLabel label1;
    private JLabel label2;
    private JLabel label3;
    private JTextField textField1;
    private JTextField textField2;
    private JLabel label4;
    private JTextField textField3;
    private JButton button1;
    private JButton button2;
    // JFormDesigner - End of variables declaration  //GEN-END:variables

    String showFileOpenDialog(JFrame parent) {
        // 创建一个默认的文件选择器
        JFileChooser fileChooser = new JFileChooser();
        // 设置默认显示的文件夹
        fileChooser.setCurrentDirectory(new File("D:\\"));
        // 添加可用的文件过滤器（FileNameExtensionFilter 的第一个参数是描述, 后面是需要过滤的文件扩展名）
//        fileChooser.addChoosableFileFilter(new FileNameExtensionFilter("(txt)", "txt"));
        // 设置默认使用的文件过滤器（FileNameExtensionFilter 的第一个参数是描述, 后面是需要过滤的文件扩展名 可变参数）
        fileChooser.setFileFilter(new FileNameExtensionFilter("(jpg)", "jpg"));
        // 打开文件选择框（线程将被堵塞，知道选择框被关闭）
        int result = fileChooser.showOpenDialog(parent);  // 对话框将会尽量显示在靠近 parent 的中心

        String path = null;
        // 点击确定
        if(result == JFileChooser.APPROVE_OPTION) {
            // 获取路径
            File file = fileChooser.getSelectedFile();
            path = file.getAbsolutePath();
        }
        return path;
    }

}
